package progress.exa9_1;

import java.util.Collection;

/**
 * SelfList接口定义
 * @param <E>
 */
public interface SelfList<E> extends Collection<E> {

    /**
     * 将元素添加到链表头部
     * @param e 元素
     */
    void addHead(E e);

    /**
     * 将元素添加到链表尾部
     * @param e
     */
    void addTail(E e);

    /**
     * 此方法删除元素
     * @param e 元素
     * @return
     */
    E delete(E e);

    /**
     * 获取列表中位置i上的元素
     * @param i
     * @return
     */
    E get(int i);

    /**
     * 获取列表的第一个元素
     * @return
     */
    E getHead();

    /**
     * 获取列表的最后一个元素
     * @return
     */
    E getTail();
}
